/*
 * This file (AkShape.java) is protected by the GNU GPL licence (v2). 
 * Please read the license.txt attached for further informations. 
 * 
 */

package alkwarel.objects;


/**
 * Basic Alkwarel Shape class.
 * 
 * @author Xavier Gouchet
 * 
 */
public abstract class AkShape extends AkActuator {

	/**
	 * Standard Constructor.
	 * 
	 * @param id
	 *            the object's id
	 * @param name
	 *            the object's name
	 * @param requirements
	 *            the actuator's requirements
	 */
	public AkShape(int id, String name, String[] requirements) {
		super(id, name, requirements);
	}

	/**
	 * Draws something on ahn Artspaces
	 * 
	 * @param a
	 *            the artspace on which the Shape will be drawn
	 * @return boolean whether the method has been completed successfully or not
	 */
	protected abstract boolean Draw(AkArtspace a);

	/**
	 * @see alkwarel.objects.AkActuator#Apply(alkwarel.objects.AkArtspace)
	 */
	public final boolean Apply(AkArtspace a) {
		return this.Draw(a);
	}
}
